package collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 数组转换为集合
 * 数组的工具类Arrays提供了静态方法asList，可以将一个数组转换为一个List集合
 *
 * 注意:这个List集合是Arrays的内部类java.util.Arrays.ArrayList
 * 它不是java.util.ArrayList
 * 这个集合内部直接引用我们给定的数组，因此对该集合的操作就是对原数组的操作
 */
public class ArrayToListDemo {
    public static void main(String[] args) {



        String[] array = {"one","two","three","four","five"};
        System.out.println("array:"+Arrays.toString(array));

        List<String> list = Arrays.asList(array);
        System.out.println("list:"+list);

        list.set(1,"six");//将集合第二个元素换成"six"
        System.out.println("list:"+list);
        System.out.println("array:"+Arrays.toString(array));
        /*
            由于数组定长，因此集合会改变长度的操作都是不支持的，会抛出异常:
            java.lang.UnsupportedOperationException
                      不支持      操作      异常
         */
//        list.add("seven");


        //如果需要增删，则需要自行创建一个集合并包含list集合的所有元素即可
//        List<String> list2 = new ArrayList<>();
//        list2.addAll(list);
        //所有集合都支持一个参数为Collection的构造器:创建集合时包含给定集合所有元素
        List<String> list2 = new ArrayList<>(list);
        System.out.println("list2:"+list2);
        list2.add("seven");
        System.out.println("list2:"+list2);
    }


}
